#ifndef PRIMITIVE_H
#define PRIMITIVE_H

#include <vector>
#include <vec2.h>
#include <vec3.h>
#include <vec4.h>
#include <mat2.h>
#include <mat3.h>
#include <mat4.h>

using namespace std;

class Vertex;
class Tet;

typedef vector<Vertex*> VertexList;
typedef vector<Tet*> TetList;

class Vertex
{
public:
	Vertex();
	~Vertex();

	vec3f position;
	vec3f origin;
	vec3f velocity;
	vec3f force;
	vec3f fext;

	float	mass;
	int		index;
};

class Tet
{
public:
	Tet();
	~Tet();

	Vertex* vertices[4];

	float	Ke[12][12];
	mat3f	Re;
	mat4f	Pinv;
	float	volume;
	int		index;
};

#endif
